home *** CD-ROM | disk | FTP | other *** search
- package symantec.itools.awt;
-
- import java.awt.AWTException;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.image.FilteredImageSource;
- import java.net.URL;
-
- public class ImageButton extends ButtonBase {
- protected boolean scale = false;
- private URL url = null;
- private Image enabledImage = null;
- private Image disabledImage = null;
- private boolean centerMode = true;
-
- public void setImageURL(URL var1) {
- this.url = var1;
- Image var2 = ((Component)this).getToolkit().getImage(this.url);
- MediaTracker var3 = new MediaTracker(this);
-
- try {
- var3.addImage(var2, 0);
- var3.waitForAll();
- } catch (InterruptedException var4) {
- }
-
- try {
- if (var3.isErrorAny()) {
- throw new AWTException("error loading image " + var2.toString());
- }
- } catch (AWTException var5) {
- System.err.println("Error loading image " + var2.toString());
- return;
- }
-
- this.enabledImage = var2;
- this.disabledImage = ((Component)this).createImage(new FilteredImageSource(var2.getSource(), new ImageButtonDisableFilter()));
- }
-
- public URL getImageURL() {
- return this.url;
- }
-
- public void setScaleMode(boolean var1) {
- this.scale = var1;
- ((Component)this).invalidate();
- }
-
- public boolean getScaleMode() {
- return this.scale;
- }
-
- public void setCenterMode(boolean var1) {
- this.centerMode = var1;
- ((Component)this).invalidate();
- }
-
- public boolean getCenterMode() {
- return this.centerMode;
- }
-
- public void paint(Graphics var1) {
- super.paint(var1);
- Dimension var2 = ((Component)this).size();
- int var3 = super.bevel + 1 + super.pressedAdjustment;
- int var4 = super.bevel + 1 + super.pressedAdjustment;
- int var5 = var2.width - 1;
- int var6 = var2.height - 1;
- Image var7 = ((Component)this).isEnabled() ? this.enabledImage : this.disabledImage;
- if (var7 != null) {
- if (this.centerMode && !this.scale) {
- var3 += (var5 - var7.getWidth(this)) / 2;
- var4 += (var6 - var7.getHeight(this)) / 2;
- }
-
- if (var7 != null) {
- if (this.scale) {
- var1.drawImage(var7, var3, var4, var5 - super.bevel * 2, var6 - super.bevel * 2, this);
- } else {
- var1.drawImage(var7, var3, var4, this);
- }
- }
- }
- }
- }
-